Integer to 32bit

Otázka od: Martin Kasman

16. 4. 2004 10:58

Ako prelozim obycajne cislo do 32 bitoveho?

Potrebujem do hlavicky dbf subor podla predpisaneho formatu na pat znakov
ulozit pocet zaznamov v 32 bitovom formate.


Vdaka za kazdu radu.



Odpovedá: Petr Daricek

16. 4. 2004 15:14

> Ako prelozim obycajne cislo do 32 bitoveho?
>
> Potrebujem do hlavicky dbf subor podla predpisaneho formatu na pat znakov
> ulozit pocet zaznamov v 32 bitovom formate.
>
>
> Vdaka za kazdu radu.

Pokud se nepletu, tak Integer je standartne 32 bitovy.
Co je to "obycejne cislo"?
              Petr daricek

Odpovedá: Martin Kasman

16. 4. 2004 16:14

Samozrejme, ze Integer je 32 bitovy, no ako 32 bitovy je ulozeny v pamati
pocitaca. Ja som chcel, aby som ho dostal do premennej (najlepsie pchar)
tak, ako je v pamati a nie uz klasicky v desiatkovej sustave.

Nejaky algoritmus som uz nasiel, ktora vracia styri znaky, ktore predstavuju
styri ascii kody v 32 bit celeho naseho cisla.

procedure vyp(var a1,a2,a3,a4:word;pocz:longint);
var cr:real; cc,cz:longint;

begin
 cz:=pocz;
 if cz>=16777216 then
 begin
  a4:=pocz div 16777216; cz:=pocz mod 16777216;
 end;
 if cz>=65536 then
 begin
  a3:=cz div 65536; cz:=cz mod 65536;
 end;
 if cz>=256 then
 begin
  a2:=cz div 256; cz:=cz mod 256;
 end;
 a1:=cz;
end;

Len lepsia by bola priama funkcia v Delphi.


----- Original Message -----
From: "Petr Daricek" <petr.daricek@seznam.cz>


> > Ako prelozim obycajne cislo do 32 bitoveho?
> >
> > Potrebujem do hlavicky dbf subor podla predpisaneho formatu na pat
znakov
> > ulozit pocet zaznamov v 32 bitovom formate.
>
> Pokud se nepletu, tak Integer je standartne 32 bitovy.
> Co je to "obycejne cislo"?
> Petr daricek


Odpovedá: Pavel Poles

16. 4. 2004 16:22

> Samozrejme, ze Integer je 32 bitovy, no ako 32 bitovy je ulozeny v pamati
> pocitaca. Ja som chcel, aby som ho dostal do premennej (najlepsie pchar)
> tak, ako je v pamati a nie uz klasicky v desiatkovej sustave.

A co treba

Move(MujInteger,MujPChar^,sizeof(integer));

Pavel Poles

Odpovedá: Dalibor Toman

16. 4. 2004 17:14

On Friday, April 16, 2004 4:57 PM [CET], Martin Kasman
<martinkasman@martinkasman.sk> wrote:

> Samozrejme, ze Integer je 32 bitovy, no ako 32 bitovy je ulozeny v
> pamati pocitaca. Ja som chcel, aby som ho dostal do premennej
> (najlepsie pchar) tak, ako je v pamati a nie uz klasicky v
> desiatkovej sustave.

> Nejaky algoritmus som uz nasiel, ktora vracia styri znaky, ktore
> predstavuju styri ascii kody v 32 bit celeho naseho cisla.
>
> procedure vyp(var a1,a2,a3,a4:word;pocz:longint);
> var cr:real; cc,cz:longint;
>
> begin
> cz:=pocz;
> if cz>=16777216 then
> begin
> a4:=pocz div 16777216; cz:=pocz mod 16777216;
> end;
> if cz>=65536 then
> begin
> a3:=cz div 65536; cz:=cz mod 65536;
> end;
> if cz>=256 then
> begin
> a2:=cz div 256; cz:=cz mod 256;
> end;
> a1:=cz;
> end;
>
> Len lepsia by bola priama funkcia v Delphi.

no vypada to jako kdyby to programoval muj 3lety syn (doufam, ze se
nedozvi, ze ho takhle shazuju). Pokud jsem byl s to to pochopit tak to
nedela nic jineho nez, ze to vraci 4 byty, ze kterych se 32bit integer
sklada. Elegantnejsi a nazornejsi reseni muze byt napriklad:

  TYPE
   TFourBytes = Packed Record
      one : Byte;
      two: Byte;
      three : Byte;
      four :Byte;
    end;

VAR
  I : Integer;
  J : Byte;

begin
  I := $12345678;
  J := TfourBytes(I).one;
 ...
end.


Ovsem puvodni textove zadani zrejme popisuje uplne neco jineho  

D. Toman


Odpovedá: Petr Vones

18. 4. 2004 14:57

From: "Martin Kasman" <martinkasman@martinkasman.sk>
> Potrebujem do hlavicky dbf subor podla predpisaneho formatu na pat znakov
> ulozit pocet zaznamov v 32 bitovom formate.

A vysledkem ma byt presne co ?

Petr Vones